We have public API requiring it as a type.
#include "config.h"
-#include <gdk/gdkseatprivate.h>
+#include "gdkwaylandseat.h"
+#include "gdk/gdkseatprivate.h"
-#define GDK_TYPE_WAYLAND_SEAT (gdk_wayland_seat_get_type ())
-#define GDK_WAYLAND_SEAT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_WAYLAND_SEAT, GdkWaylandSeat))
#define GDK_WAYLAND_SEAT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GDK_TYPE_WAYLAND_SEAT, GdkWaylandSeatClass))
-#define GDK_IS_WAYLAND_SEAT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_WAYLAND_SEAT))
#define GDK_IS_WAYLAND_SEAT_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GDK_TYPE_WAYLAND_SEAT))
#define GDK_WAYLAND_SEAT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDK_TYPE_WAYLAND_SEAT, GdkWaylandSeatClass))
-typedef struct _GdkWaylandSeat GdkWaylandSeat;
-typedef struct _GdkWaylandSeatClass GdkWaylandSeatClass;
-
struct _GdkWaylandSeatClass
{
GdkSeatClass parent_class;
};
-GType gdk_wayland_seat_get_type (void) G_GNUC_CONST;
-
void gdk_wayland_seat_update_cursor_scale (GdkWaylandSeat *seat);
void gdk_wayland_seat_clear_touchpoints (GdkWaylandSeat *seat,
#include <gdk/wayland/gdkwaylanddevice.h>
#include <gdk/wayland/gdkwaylanddisplay.h>
#include <gdk/wayland/gdkwaylandmonitor.h>
+#include <gdk/wayland/gdkwaylandseat.h>
#include <gdk/wayland/gdkwaylandsurface.h>
#include <gdk/wayland/gdkwaylandglcontext.h>
#else
typedef GdkDevice GdkWaylandDevice;
#endif
+
typedef struct _GdkWaylandDeviceClass GdkWaylandDeviceClass;
#define GDK_TYPE_WAYLAND_DEVICE (gdk_wayland_device_get_type ())
GDK_AVAILABLE_IN_ALL
struct wl_keyboard *gdk_wayland_device_get_wl_keyboard (GdkDevice *device);
-GDK_AVAILABLE_IN_ALL
-struct wl_seat *gdk_wayland_seat_get_wl_seat (GdkSeat *seat);
-
GDK_AVAILABLE_IN_ALL
const char *gdk_wayland_device_get_node_path (GdkDevice *device);
--- /dev/null
+/* gdkwaylandseat.h: Wayland GdkSeat
+ *
+ * Copyright 2020 GNOME Foundation
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#if !defined (__GDKWAYLAND_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gdk/wayland/gdkwayland.h> can be included directly."
+#endif
+
+#include <gdk/gdk.h>
+#include <wayland-client.h>
+
+G_BEGIN_DECLS
+
+#ifdef GTK_COMPILATION
+typedef struct _GdkWaylandSeat GdkWaylandSeat;
+#else
+typedef GdkSeat GdkWaylandSeat;
+#endif
+
+typedef struct _GdkWaylandSeatClass GdkWaylandSeatClass;
+
+#define GDK_TYPE_WAYLAND_SEAT (gdk_wayland_seat_get_type ())
+#define GDK_WAYLAND_SEAT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_WAYLAND_SEAT, GdkWaylandSeat))
+#define GDK_IS_WAYLAND_SEAT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_WAYLAND_SEAT))
+
+GDK_AVAILABLE_IN_ALL
+GType gdk_wayland_seat_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+struct wl_seat * gdk_wayland_seat_get_wl_seat (GdkSeat *seat);
+
+G_END_DECLS
'gdkwaylanddisplay.h',
'gdkwaylandglcontext.h',
'gdkwaylandmonitor.h',
- 'gdkwaylandsurface.h'
+ 'gdkwaylandseat.h',
+ 'gdkwaylandsurface.h',
])
install_headers(gdk_wayland_public_headers, 'gdkwayland.h', subdir: 'gtk-4.0/gdk/wayland/')